// 导入 fs 文件模块
const fs = require("fs");
// 导入 path 路径模块
const path = require("path");

// 声明正则匹配 css 与 js

// 1.声明 css 正则
const regStyle = /<style>[\s\S]*<\/style>/;

// 2.声明 js 正则
const regScript = /<script>[\s\S]*<\/script>/;

// 读取html 的内容
fs.readFile(path.join(__dirname, "index.html"), "utf8", (err, data) => {
  if (err) return console.log("读取文件失败" + err.message);
  // 调用处理的css 函数
  removeCSS(data);
  // 调用处理的js 函数
  removeJS(data);
  // 调用处理的html 函数
  removeHTML(data)
});

// 定义处理 css样式内容的函数
function removeCSS(htmlStar) {
  // 使用正则里的 exec() 方法提取正则里的字符串 如果匹配到返回一个数组  如果没有则返回null
  const sun = regStyle.exec(htmlStar);
  newCSS = sun[0].replace("<style>", " ").replace("</style>", " ");
  fs.writeFile(path.join(__dirname, "clock/index.css"), newCSS, (err) => {
    if (err) return console.log(err.message);
    console.log("写入文件成功");
  });
}

// 定义处理 js样式内容的函数
function removeJS(htmlStar) {
  const sun1 = regScript.exec(htmlStar);
  newScript = sun1[0].replace("<script>", " ").replace("</script>", " ");
  fs.writeFile(path.join(__dirname, "clock/index.js"), newScript, (err) => {
    if (err) return console.log(err.message);
    console.log("写入文件成功");
  });
}

// 处理 html样式内容的函数
function removeHTML(htmlStar) {
    const newHTML = htmlStar
    .replace(regStyle,`<link rel="stylesheet" href="/clock/index.css">`)
    .replace(regScript,`<script src="/clock/index.js"></script>`)
    fs.writeFile(path.join(__dirname,'/clock/index.html'),newHTML, err => {
        if (err) return console.log(err.message);
        console.log('文件写入成功');
    })
}
